Rights management (RM) and enforcement is highly desirable in connection with digital content such as digital audio, digital video, digital text, digital data, digital multimedia, etc., where such digital content is to be distributed to one or more users. Digital content could be static, such as a text document, for example, or it could be streamed, such as the streamed audio and video of a multimedia presentation. Typical modes of distribution of such streamed content include tangible and intangible forms such as an optical disk, a cable-access feed, a feed from an electronic network such as the Internet, a feed from an over-the-air broadcast, etc. Upon being received by a user at an appropriate computing device thereof, such user renders the streamed digital content with the aid of the computing device, appropriate rendering software, and appropriate output devices such as speakers, a video monitor, etc.
In one scenario, the streamed content is distributed by a distributor as part of a subscription service, such as for example a digital television service, and the streamed content as distributed is either protected, such as for example by being encrypted, or is unprotected. If it is the case that the streamed content is indeed distributed in an unprotected form, it may be the case that the distributor primarily intends for the streamed content to be immediately consumed and rendered, and not stored in any meaningful retrievable form. For example, the streamed content may be one of many streams of content in a digital cable television signal that is to be received by a digital cable set-top box and immediately rendered thereby, and is then to be forwarded to the aforementioned appropriate output devices.
However, it is to be appreciated that storage systems exist and/or are being developed that can indeed store the streamed content for later rendering and/or re-distribution to other computing devices. With regard to such storage systems, then, the distributor of the streamed unprotected content would rather not have such unprotected content stored in the unprotected form and without any ability to restrict such re-distribution, if so desired. In particular, the distributor or the like may wish to prohibit the user from copying such streamed content to another storage system or the like, may wish to allow the user to copy with temporal and/or count restrictions, or the like. As may be appreciated, by prohibiting unlimited copying of the streamed content, the distributor can avoid the unchecked dispersal of pristine digital copies of the streamed content, where such unchecked dispersal would encourage other users from foregoing from subscribing to the subscription service offered by such distributor.
In addition, the distributor may wish to provide various users with different rendering rights. For example, the distributor may offer different tiers of service, where higher-level tiers correspondingly command higher subscription fees, and where a user subscribing at a particular tier should not be allowed to access streamed content from higher tiers in an unprotected form.
Note, though, that after the streamed content has been distributed, the distributor has very little if any real control over the streamed content. This is especially problematic in view of the fact that most any personal computer includes the software and hardware necessary to make an exact digital copy of such streamed content, and to download such exact digital copy to a re-distribution medium such as an optical disk, or to send such exact digital copy over a network such as the Internet to any destination.
Of course, as part of a transaction wherein the streamed content is subscribed to, the distributor may require the user/recipient of the streamed content to promise not to re-distribute such content in an unwelcome manner. However, such a promise is easily made and easily broken. The distributor may attempt to prevent such re-distribution through any of several known security devices, usually involving encryption and decryption. However, such security devices if especially simple pose little problem to a mildly determined user who wishes to decrypt encrypted content, save such content in an un-encrypted form, and then re-distribute same.
RM and enforcement architectures and methods have thus been provided to allow the controlled rendering of arbitrary forms of digital content including streamed content, where such control is flexible and definable by the distributor or the like of such digital content. Such architectures allow and facilitate such controlled rendering in the scenario as set forth above.
In one particular arrangement, the streamed content is one of a plurality of streams of such content provided as a combined signal to a receiver. The receiver selects a particular one of the streams upon command from a media system, and provides the selected stream to such media system for further processing. Notably, the selected stream as provided to the receiver is unprotected, but prior to being provided to the media system the selected stream is in fact protected by the receiver according to a particular RM encryption system.
Typically, in an RM encryption system, the content is protected by being encrypted according to a content key (CK). Inasmuch as symmetric encryption and decryption is easier, faster, and less expensive than asymmetric encryption and decryption, such content key (CK) is typically symmetric. Also typically, the content key (CK) is provided by an encrypting entity such as the receiver to a decrypting entity such as the media system in an encrypted form and as part of a digital license or the like that specifies license rules that must be satisfied before such content is allowed to be decrypted and rendered by the decrypting entity/media system.
Typically, a particular stream of content includes multiple sub-streams. For example, a multimedia stream may include an audio sub-stream, a video sub-stream, a text sub-stream, a metadata sub-stream, and/or the like. In addition, such stream may include multiple variations of the same type of sub-stream. For example, such stream may include multiple audio sub-streams, each in a different spoken language, multiple text sub-streams, each in a different written language, and multiple video sub-streams, each from a different angle of view of a scene.
As is known, such a stream with multiple sub-streams is typically sent as a number data packets, where each packet includes one or more payloads, and where each payload corresponds to a contiguous portion of one of the sub-streams of the stream. Thus, a particular sub-stream is re-created by locating the payloads thereof from the packets of the stream and sequentially organizing such located payloads. Note that in the case where the stream is encrypted, and as may also be known, each payload is typically formed and then encrypted as a unit, and thus re-creating the sub-stream includes decrypting each encrypted payload as a unit.
As may be appreciated, each payload from a particular sub-stream has a start boundary and an end boundary. As may also be appreciated, each sub-stream is composed of a number of sequentially organized logical blocks of information. For example, a video sub-stream may be composed of video frames, a text stream may be composed of single- or multi-byte characters, an audio sub-stream may be composed of single- or multi-bit audio units, and the like.
In the prior art, the boundaries of any particular payload were determined rather arbitrarily, and typically based on external factors. For example, to achieve a particular bit rate for a stream, the boundaries of each payload of each sub-stream of the stream were selected to achieve such bit rate, and not based on any consideration of the composition and characteristics of the sub-stream from which the payload originated. Thus, if a particular stream included a video sub-stream based on sequential video frames, such video sub-stream as divided into payloads might be broken up into portions of some arbitrary size selected to achieve the particular bit rate of the stream, where the start boundary of each payload started at some point within a particular video frame, where the payload extended over zero, one or more complete video frames, and where the end boundary of the payload ended at some point within a particular video frame.
Such arbitrary boundaries on payloads are not especially troublesome during normal transmission and rendering of a stream. However, it is to be appreciated that such arbitrary boundaries can cause considerable difficulty when the stream is to be manipulated, such as for example when the above media system wishes to re-transmit the stream to another media system, or to perform other operations on the stream. As but one example, if the payloads in a transmitted stream are defined according to a first bit rate and the stream is to be re-transmitted at a second bit-rate, the payloads should be re-configured to support the second bit-rate. However, performing such re-configuration requires essentially decrypting each payload, forming the entire stream from the decrypted payloads, forming new payloads from the formed stream according to the second bit-rate, encrypting each new payload, and the like before such re-transmission at the second bit-rate can take place. As should be appreciated, such an operation requires expending a tremendous amount of effort as necessitated by the use of arbitrary boundaries for the payloads.
Likewise, if an operation is to be performed on a particular sub-stream on a logical block by logical block basis, performing the operation preliminarily requires decrypting each payload, forming the entire stream from the decrypted payloads, and dividing the formed stream into the logical blocks. As should be appreciated here, such preliminary steps would not be absolutely necessary if the payloads were formed based on the logical blocks of the sub-stream.
A need exists, then, for a method and mechanism by which payloads in a stream of content are defined according to non-arbitrary boundaries. In particular, a need exists for a method and mechanism by which payloads in a stream of content are defined according to rational boundaries that are intrinsic to the underlying sub-stream, and that allow the stream to be manipulated without necessarily requiring the stream to be decrypted and re-encrypted.
In the prior art, the entirety of the content in a stream of content was encrypted according to the content key (CK). However, encrypting all of the content in a stream of content is at times unnecessary and perhaps not even desired. For example, there may be little to be gained by encrypting a text sub-stream in a multimedia stream, and such encryption ay in fact not be desired by the content owner or the like. Moreover, it is to be recognized that it may be desirable to encrypt different sub-streams of a stream differently, for example according to different encryption systems and/or according to different content keys (CK).
A need exists, then, for an architecture that may be employed so that each sub-stream within a stream may be protected according to a particular rights management content protect system and a particular content key (CK). In particular, a need exists for such an architecture to specify within the stream the particular rights management content protection and the particular content key (CK) for each sub-stream of the stream. Specifically, a need exists for such an architecture that describes a header object to be included with the stream that may be interpreted and employed when rendering the stream.